<?php

use Nette\Application\UI\Form,
	Nette\Security as NS;

/**
 * @author Winbeek
 */
final class HomepagePresenter extends BasePresenter
{
	public function startup()
	{
		parent::startup();

		if ($this->user->isLoggedIn())
			$this->redirect('Dashboard:');
	}

	protected function createComponentLoginForm()
	{
		$form = new Form;

		$form->addText('username', 'Přihlašovací jméno:')
			->setRequired('Zadejte vaše přihlašovací jméno.');
		$form->addPassword('password', 'Heslo:')
			->setRequired('Zadejte vaše přihlašovací heslo.');

		$form->addCheckbox('remember', 'Zapamatuj si mne');

		$form->addSubmit('send', 'Přihlásit');
		$form->onSuccess[] = callback($this, 'loginFormSubmitted');
		return $form;
	}

	public function loginFormSubmitted(Form $form)
	{
		try {
			$values = $form->values;

			$this->user->setExpiration($values->remember?'+ 7 days':'+ 20 minutes', !$values->remember);
			$this->user->login($values->username, $values->password);

			$this->flashMessage('Úspěšně přihlášen!');
			$this->redirect('Dashboard:');

		} catch (NS\AuthenticationException $e) {
			$form->addError($e->message);
		}
	}

}